package zhongbo.java.air.dictionary.web.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;

@ApiModel("警戒区域信息请求参数")
public class AirAlertZoneDto {
    
    @ApiModelProperty("ID (更新时必填)")
    private String id;

    @NotBlank(message = "区域编号不能为空")
    @ApiModelProperty(value = "区域业务编号", required = true, example = "BJ_NOFLY_001")
    private String zoneCode;

    @NotBlank(message = "区域类型不能为空")
    @Pattern(regexp = "NO_FLY|RESTRICTED|TEMPORARY", message = "区域类型必须是NO_FLY、RESTRICTED或TEMPORARY之一")
    @ApiModelProperty(value = "区域类型", required = true, allowableValues = "NO_FLY,RESTRICTED,TEMPORARY", example = "NO_FLY")
    private String zoneType;

    @NotBlank(message = "多边形顶点坐标不能为空")
    @ApiModelProperty(value = "多边形顶点坐标(JSON格式)", required = true, example = "[{\"lat\":39.9,\"lng\":116.3},{\"lat\":39.9,\"lng\":116.4},{\"lat\":39.8,\"lng\":116.4},{\"lat\":39.8,\"lng\":116.3}]")
    private String vertices;

    @NotNull(message = "生效开始时间不能为空")
    @ApiModelProperty(value = "生效开始时间", required = true, example = "2025-04-01T00:00:00")
    private LocalDateTime effectiveStart;

    @ApiModelProperty(value = "生效结束时间", example = "2025-12-31T23:59:59")
    private LocalDateTime effectiveEnd;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getZoneCode() {
        return zoneCode;
    }

    public void setZoneCode(String zoneCode) {
        this.zoneCode = zoneCode;
    }

    public String getZoneType() {
        return zoneType;
    }

    public void setZoneType(String zoneType) {
        this.zoneType = zoneType;
    }

    public String getVertices() {
        return vertices;
    }

    public void setVertices(String vertices) {
        this.vertices = vertices;
    }

    public LocalDateTime getEffectiveStart() {
        return effectiveStart;
    }

    public void setEffectiveStart(LocalDateTime effectiveStart) {
        this.effectiveStart = effectiveStart;
    }

    public LocalDateTime getEffectiveEnd() {
        return effectiveEnd;
    }

    public void setEffectiveEnd(LocalDateTime effectiveEnd) {
        this.effectiveEnd = effectiveEnd;
    }
} 